const events = require("events");
const emitter = new events.EventEmitter();
emitter.on("eventName",  () => {
  console.log("事件被触发，处理函数执行");
});
emitter.on("eventNameWithParams", (...args) => {
  console.log("带参数的事件处理函数:", ...args);
});



(`
【获取所有已注册的事件名称】：eventNames()
    语法：emitter.eventNames()
    返回值：数组，包含所有已注册的事件名称（字符串或Symbol）
`);
const eventNames = emitter.eventNames();
console.log('已注册的事件:', eventNames);





(`
【获取监听器数量】：listenerCount()
    语法：emitter.listenerCount(eventName)
    参数：
        - eventName: 字符串或Symbol，事件名称,
    返回值：数字，表示指定事件的监听器数量
`);
const count = emitter.listenerCount('eventName');
console.log('event事件的监听器数量:', count);





(`
【获取所有监听器函数】：listeners()
    语法：emitter.listeners(eventName)
    参数：
        - eventName: 字符串或Symbol，事件名称
    返回值：数组，包含指定事件的所有监听器函数
`);
const listeners = emitter.listeners('eventName');
console.log('event事件的所有监听器:', listeners);






(`
【获取最大监听器数量】：getMaxListeners()
    语法：emitter.getMaxListeners()
    返回值：数字，表示当前设置的最大监听器数量
    作用：获取当前设置的最大监听器数量
    注意：默认情况下，每个事件最多可以注册10个监听器，超过会发出警告
`);
const maxListeners = emitter.getMaxListeners();
console.log('当前最大监听器数量:', maxListeners);





(`
【设置最大监听器数量】：setMaxListeners()
    语法：emitter.setMaxListeners(n)
    参数：
        - n: 数字，新的最大监听器数量
    返回值：返回emitter实例，可链式调用
    作用：设置每个事件可以注册的最大监听器数量
    注意：设置为0表示不限制数量
    警告：设置为0可能导致内存泄漏，建议仅在必要时使用
`);
emitter.setMaxListeners(20); // 将最大监听器数量设置为20